<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
       /**
        *  value 
        *  writable     配置对象属性可写
        *  enumerable   可枚举,是否可以被循环
        *  configurable 可配置，删除对象属性
        * 
        */
        // var obj = Object.create('对象','参数配置')
        // 1.直接创建对象 ，把对象放在新创建对象的原型上；
        // 方式1 对象的属性挂载在对象原型对象上
        var obj = Object.create({
            name: '张三',
            age: 18
        })
        console.log(obj);
        // 方式2
        // 2.配置参数创建对象
        // 对象的属性 是可控制的。
        var obj1 = Object.create(null, {
            name: {
                value: '张三',
                writable: true
            },
            age: {
                value:  18
            }
        })
        obj1.name = 'lisi';
        console.log(obj1);
        // 方式3 参数扩展
        // 3.通过存储器来配置 对象
        var val = "张三";
        var obj2 = Object.create(null, {
            name: {
                get: function() {
                    console.log('获取了值');
                    // return "张三";
                    return val;
                },
                set: function(newvalue) {
                    // console.log('修改了value', newvalue);
                    val = newvalue; 
                },
                enumerable: true,
                configurable: true
            }
        })
        obj2.name = '李四';
        // console.log(obj2.name);
        console.log(obj2);
        
    </script>
</body>
</html>